package br.com.fiap.vendas.business.service.impl;

import java.util.ArrayList;
import java.util.List;

import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Remote;
import javax.ejb.Stateless;

import br.com.fiap.vendas.business.dao.interfaces.UsuarioDAO;
import br.com.fiap.vendas.business.entity.UsuarioEntity;
import br.com.fiap.vendas.business.exception.ServiceException;
import br.com.fiap.vendas.business.service.interfaces.UsuarioService;
import br.com.fiap.vendas.business.vo.UsuarioVO;

@Remote(UsuarioService.class)
@LocalBean
@Stateless
public class UsuarioServiceImpl implements UsuarioService {

	@EJB
	private UsuarioDAO usuarioDAO;
	
	public void inserirUsuario(UsuarioVO usuarioVO)
			throws ServiceException {
		
		UsuarioEntity usuarioEntity = new UsuarioEntity(usuarioVO);
		usuarioDAO.inserirUsuario(usuarioEntity);
		
	}

	public List<UsuarioVO> buscarUsuarios() throws ServiceException {
		 
		List<UsuarioEntity> usuarios = usuarioDAO.listarUsuarios();
		
		return buildUsuarioVOList(usuarios);
	}

	private List<UsuarioVO> buildUsuarioVOList(List<UsuarioEntity> usuarios) {
		
		List<UsuarioVO> retorno = new ArrayList<>(usuarios.size());
		
		for (UsuarioEntity usuarioEntity : usuarios) {
			retorno.add(usuarioEntity.buildUsuarioVO());
		}
		
		return retorno;
	}

}
